宽度和高度称为视频的分辨率。
FFMPEG 提供了几种缩放视频的方法。 最简单的方法是使用 -s 选项,例如在本例中:
ffmpeg -i YOUR_INPUT.mov -s 1280x720 YOUR_OUTPUT.mp4
您可以指定以像素为单位的宽度和高度,例如上面的示例,或者您可以使用视频分辨率缩写,如官方 FFMPEG 的文档 中所述,例如下面的示例:
ffmpeg -i YOUR_INPUT.mov -s 4kdci YOUR_OUTPUT.mov
通过指定 -s 4kdci
将指示 FFMPEG 以 4096x2160 像素(4K 分辨率)缩放您的输入视频。
什么是纵横比
纵横比:电视或电影图像的宽度与其高度的比率。
如果您需要处理来自不同来源的视频,例如相机 RAW 素材、智能手机等,您可能遇到不同的纵横比。
现在常见的纵横比是 16:9(电视)或 9:16(智能手机),但您可能会遇到涉及不同纵横比的情况,尤其是在电影制作领域。
-
一个 16:9 矩形,其中矩形可视化比率
像素纵横比 (PAR)
PAR 是一个数学比率,描述了数字图像中像素的宽度与该像素的高度的比较。
大多数数字成像系统将图像显示为微小的方形像素网格。 然而,一些成像系统,尤其是那些必须与标准清晰度电视电影兼容的成像系统,将图像显示为矩形像素网格,其中像素宽度和高度不同。 像素纵横比描述了这种差异。 像素纵横比的使用主要涉及与标准清晰 度电视和其他一些特殊情况有关的图片。 大多数其他成像系统,包括那些符合 SMPTE 标准和实践的系统,都使用方形像素。
-
像素纵横比 1:1
-
像素纵横比 2:1
-
可以在 FFMPEG 的输出中指定像素纵横比 (PAR) 的值,用于指示最终用户的播放器如何显示像素,使用 -vf scale
(用于缩放的视频过滤器)和 -setsar
选项的组合( Sample Aspect Ratio)。
将 SAR 设置为 1:1(缩放)
ffmpeg -i YOUR_4:3_INPUT.mov -vf scale=1280x720,setsar=1:1 -c:a copy YOUR_16:9_OUTPUT.mov
-vf scale=1280x720
表示“视频滤镜比例,Video Filter Scale”,1280x720 指的是输出文件所需的宽度和高度
-setsar=1:1
表示 将像素纵横比设置为 1:1(正方形)。
-c:a copy
这将复制原始输入的音频,无需重新编码。
-
原始 720x576 镜头,4:3
-
最终输出,缩放为 1280x720, 16:9
将 SAR 设置为 1:1(使用 Pillarbox 保留原始比例)
ffmpeg -i INPUT.mov -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a copy OUTPUT.mov
原始 720x576 镜头,4:3
最终输出为 1280x720, 16:9,带 Pillar box
-vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2"
-vf
(视频滤镜)将执行 2 个不同的操作。 第一个将以 1280(宽度)x720(高度)缩放输入,并通过缩放输入来保留原始纵横比。 第二个(pad)将计算并插入一个Pillar Box ,从而产生最终的 1280x720 输出视频。 如果您的输入的纵横比比输出的纵横比宽,则会发生 Letterboxing。iw
代表“输入宽度”; ow
代表“输出宽度”;ih
代表“输入高度”,oh
代表输出高度。 根据输入,数学表达式用于计算Pillar/Letter Box 的大小。
9:16 纵横比
Instagram 或 YouTube 等许多社交网络都支持 9:16 的比例。 要制作保留原始宽高比9:16的视频,必须将宽度与高度反转,如 转换720x1280 视频的示例所示:
ffmpeg -i YOUR_16:9_INPUT.mov -vf "scale=720:1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2" -c:a copy YOUR_9:16_OUTPUT.mov
-
原始 720x576 镜头,4:3
-
最终输出,1280x720,Letterboxed,9:16
Pillar/Letter Box 的颜色
要更改Pillar/Letter Box的颜色,可以使用color
选项指定一个值,例如在此示例中生成红色的Letterbox:
ffmpeg -i INPUT.mov -vf "scale=720:1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2:color=red" OUTPUT.mov
-
原始 720x1280 黑色Letterbox
-
最终输出,720x1280 红色Letterbox
裁剪
当您想避免使用 Pillar/Letter Boxes 时,可以使用crop选项,如下所示:
ffmpeg -i YOUR_4:3_INPUT.mov -vf "scale=1280:720:force_original_aspect_ratio=increase,crop=1280:720" CROP_OUTPUT.mov
-
原始 720x576 镜头,4:3
-
最终 1280x720 裁剪镜头,16:9